<?php
class AlunoDAO{ 
    private $host = "mysql:host=localhost;port=3306;dbname=teste";
    private $user = "root";
    private $senha = "";
    

    public function __construct(){}
    
    //<editor-fold defaultstate="collapsed" desc="TESTA CPF">
    public function TestaCpf($cpf){
        try{
            $con = new PDO($this->host,$this->user,$this->senha);
            $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $con -> exec("set names utf8");	
            
            $stmt = $con->prepare("SELECT * FROM aluno WHERE cpf=?");
            $stmt->bindValue(1,$cpf);    
            $stmt->execute();    
    
            $linha = $stmt->fetch(PDO::FETCH_OBJ);
            if ($linha == NULL)
                return false;            
            else
                return true;      
            
                }   
  catch(PDOException $e){
    $e->getMessage();
  }
  catch (Exception $e){
    echo $e->getMessage();
  }	
}
//</editor-fold>
    
    //<editor-fold defaultstate="collapsed" desc="INSERE">
public function Insere(Aluno $aluno){
  try{
    $con = new PDO($this->host,$this->user,$this->senha);
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $con -> exec("set names utf8");	
    
   $testa=$this->TestaCpf($aluno->getCpf());
   if ($testa==TRUE){
       throw  new Exception("CPF já Existe");
       exit();
   }
   else{

    $stmt = $con->prepare("INSERT INTO aluno(nome,cpf,idade) VALUES(?, ?, ?)");
    $stmt->bindValue(1,$aluno->getNome());
    $stmt->bindValue(2,$aluno->getCpf());
    $stmt->bindValue(3,$aluno->getIdade());
    $stmt->execute();
   }
  }
  catch(PDOException $e){
    $e->getMessage();
  }
  catch (Exception $e){
    echo $e->getMessage();
  }	
}
//</editor-fold>
    
    //<editor-fold defaultstate="collapsed" desc="Lista Todos">
public function ListaTodos(){		   
  try {
    $con = new PDO($this->host,$this->user,$this->senha);
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $con -> exec("set names utf8");

    $stmt = $con->prepare('SELECT * FROM aluno');  
    $stmt->execute();
    
    while($row = $stmt->fetch(PDO::FETCH_OBJ)) {
        $aluno = new Aluno($row->nome, $row->cpf,$row->idade);
       echo ($aluno);
    } 
  }
  catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
  }
}
//</editor-fold>
    
    //<editor-fold defaultstate="collapsed" desc="Excluir">
public function Excluir ($id){
    try{
        $con = new PDO("mysql:host=localhost;port=3306;dbname=teste","root","");
        $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $con->exec("set names utf8");
        
        $stmt=$con->prepare("DELETE FROM aluno WHERE id=?");
        $stmt->bindParam(1,$id);
        $stmt->execute();
}
catch (Exception $e){
        echo $e->getMessage();
}
}
//</editor-fold>

    
    //<editor-fold defaultstate="collapsed" desc="Busca Nome">
public function buscaNome($nome){
     $con = new PDO("mysql:host=localhost;port=3306;dbname=teste","root","");
        $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$con -> exec("set names utf8");
    $sql = "SELECT nome, cpf,idade FROM aluno WHERE nome=? ";
$stm = $con->prepare($sql);
$stm->bindValue(1, $nome);
$stm-> execute();

while($row = $stm->fetch(PDO::FETCH_OBJ)) {
    
     $aluno = new Aluno($row->nome, $row->cpf,$row->idade);
       echo ($aluno);
 }
}
//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="busca CPF">
public function BuscaCpf($cpf){
  try{
    $con = new PDO($this->host,$this->user,$this->senha);
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $con -> exec("set names utf8");	

    $stmt = $con->prepare("SELECT * FROM aluno WHERE cpf=?");
    $stmt->bindValue(1,$cpf);    
    $stmt->execute();    
    
    $testa = $this->TestaCpf($cpf);
    if ($testa==false){
    while($row = $stmt->fetch(PDO::FETCH_OBJ)) {
        $aluno = new Aluno($row->nome, $row->cpf,$row->idade);
       echo ($aluno);
       exit();
    }
    }
    else
        throw new Exception ("CPF Não existe");
  }
  catch(PDOException $e){
    $e->getMessage();
  }
  catch (Exception $e){
    echo $e->getMessage();
  }	
}

//</editor-fold>


public function Busca($coluna, $valor){
     $con = new PDO($this->host,$this->user,$this->senha);
     $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     $con -> exec("set names utf8");	
     
    
    $stm = $con->prepare("SELECT nome, cpf,idade FROM aluno WHERE $coluna=? ");
    $stm->bindValue(1, $valor);
    
    $stm-> execute();
   
    
    while($row = $stm->fetch(PDO::FETCH_OBJ)) {    
        $aluno = new Aluno($row->nome, $row->cpf,$row->idade);
            echo ($aluno);
    }
    
}



}

?>